import URL from 'url'
import _ from 'underscore'
/**
 * 获取Url参数，
 *
 * @param {any} url //url地址
 * @param {any} params //参数名
 * 有params返回参数名的值，string
 * 没有parama 返回整个参数 object
 * 例子：
 * http://abc.com/xx?id=1
 * getUrlParams('id') ==> 1
 */
export const getUrlParams = (params = '', url = window.location.href) =>
  params
    ? URL.parse(url, { querystring: true }).query[params]
    : URL.parse(url, { querystring: true })

/**
 * 判断是否以某个字符串开头
 * @param target
 * @param str
 * @returns {boolean}
 */
export let startWith = (target, str) => {
  if (typeof target !== 'string') return null
  if (typeof str !== 'string') return null
  return target.indexOf(str) === 0
}

/**
 * 判断是否包含字符串
 * @param target
 * @param str
 * @returns {boolean}
 */
export let strWith = (target, str) => {
  if (typeof target !== 'string') return null
  if (typeof str !== 'string') return null
  return target.indexOf(str) >= 0
}

/**
 * 数组中是否有某个对象的位置（只要一个kek相同,就返回index）
 * @param arr
 * @param obj
 * @returns {*} 返回索引或-1
 */
export let objIndex = (arr, obj) => {
  if (!_.isArray(arr)) return null
  if (!_.isObject(obj)) return null
  let index = arr.indexOf(findObj(arr, obj))
  if (index >= 0) return index
  return -1
}
/**
 * 数组中找到某一个对象，返回一个对象
 * @param obj 返回一个对象
 * @param arr
 */
export let findObj = (arr, obj) =>
  _.find(arr, x => {
    if (!_.isArray(arr)) return null
    if (!_.isObject(obj)) return null
    return _.isEqual([x[_.keys(obj)]], _.values(obj))
  })
